<template>
  <div
    class="mui-numbox"
    data-numbox-min="1"
    :data-numbox-max="max"
    style="height:25px; margin-left:5px;"
  >
    <button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
    <input
      id="test"
      class="mui-input-numbox"
      type="number"
      v-model="count"
      ref="numbox"
      @change="countChanged"
      readonly
    >
    <button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
  </div>
</template>
<script>
import mui from "../lib/mui/js/mui.min.js";
export default {
  props: ["max", "count", "goodsid"],
  data() {
    return {
      //   count: 1 // 默认数量为1
    };
  },
  mounted() {
    // 初始化数字选择框组件
    mui(".mui-numbox").numbox();
  },
  methods: {
    countChanged() {
      // 每当改变购物车中商品的数量的时候,需要调用mutations中的方法同步到store中取,
      // 因为之前存在数量,不能直接调用mutations中的add_to_chart方法,而是应该重新定义一个更新的方法
      // 因为需要更新商品的数量,需要知道商品的id.子组件中如何获取商品id?父组件传递过来
      // 除了传递id,还需要把最新的count值传递过去
      //   console.log("子组件中的count" + this.$refs.numbox.value);
      this.$store.commit("updateGoodsCount", {
        id: this.goodsid,
        goods_count: this.$refs.numbox.value
      });
    }
  },
  watch: {
    // 经过测试,发现watch在这个mui控件上不好用,只能手动输入的数字才能触发watch,点击加减按钮无法触发,可能是v-model绑定的问题
    // count: function(newvalue, old){
    //   console.log(this.count);
    //   // 一旦值发生改变,就调用父组件的方法传递过去
    //   this.$emit("getCount", parseInt(newvalue));
    // },
    // max: (newvalue, oldvalue) => {
    //   mui(".mui-numbox")
    //     .numbox()
    //     .setOption("max", parseInt(newvalue));
    // }
  }
};
</script>
<style lang="scss" scoped>
</style>
